package q565_arrayNesting;

import java.util.HashSet;
import java.util.Set;

public class Solution_1 {
    /*
    实际上就是求数组中最长的一条环
    该方法使用了set 相对来说使用的内存较高
     */
    public int arrayNesting(int[] nums) {
        Set<Integer> set = new HashSet<>();
        int ans = 0;
        for (int i = 0; i < nums.length; i++) {
            if (set.contains(i)) continue;
            int temp = 0;
            while (!set.contains(i)) {
                set.add(i);
                i = nums[i];
                ++temp;
            }
            if (temp > nums.length / 2) return temp;
            ans = Math.max(ans, temp);
        }
        return ans;
    }
}
